package smartgrid.modules.normative.sanction;

public abstract class SanctionAbstract {
	
	public enum Enforcer {
		APPLIED,
		RECEIVED,
		OBSERVED
	}
	
	public enum Type {
		PUNISHMENT,
		INFORMATION,
		PUNISHMENT_INFORMATION,
		REPUTATION,
		DENOUNCE,
		SUSPENSION;
	}
	
	private Type	type;
	
	private int		sender;
	
	private int		receiver;
	
	
	public SanctionAbstract(Type type, int sender, int receiver) {
		this.type = type;
		this.sender = sender;
		this.receiver = receiver;
	}
	
	
	public Type getType() {
		return this.type;
	}
	
	
	public int getSender() {
		return this.sender;
	}
	
	
	public int getReceiver() {
		return this.receiver;
	}
	
	
	@Override
	public String toString() {
		String str = new String();
		
		str += "[SANCTION] " + this.type + " " + this.sender + " " + this.receiver;
		
		return str;
	}
}